﻿//8. Write a program that finds the sequence ot maximal sum in a given array. 


using System;

class SequenceOfMaximalSum
{
    static void Main()
    {
        int numberN = int.Parse(Console.ReadLine());
        int[] arrayN = new int[numberN];
        int maxSum = int.MinValue;
        for (int i = 0; i < arrayN.Length; i++)
        {
            arrayN[i] = int.Parse(Console.ReadLine());
        }
        int indexArrayI = 0;
        int indexArrayJ = 0;
        for (int i = 0; i < arrayN.Length - 1; i++)
        {
            int sum = arrayN[i];
            for (int j = i + 1; j < arrayN.Length; j++)
            {
                sum = sum + arrayN[j];
                if (sum > maxSum)
                {
                    maxSum = sum;
                    indexArrayI = i;
                    indexArrayJ = j;
                }
            }
        }
        Console.WriteLine(maxSum);

        for (int i = indexArrayI; i <= indexArrayJ; i++)
        {
            Console.WriteLine(arrayN[i]);
        }





        //Console.WriteLine("Give n integers: ");
        //byte n = byte.Parse(Console.ReadLine());//Enter set number;
        //long[] arr = new long[n];
        //for (int i = 0; i < n; i++)//Enter value of set members;
        //{
        //    Console.WriteLine("Enter n{0}: ", i);
        //    arr[i] = long.Parse(Console.ReadLine());
        //}
        //int wholeComb = 1;
        //for (int i = 0; i < n; i++)//Count of whole subset combinations; there are equal to 2 to the power of n;
        //{
        //    wholeComb *= 2;
        //}
        //wholeComb -= 1;//Substract one combination, which is zero subset;
        //int counter = 0;
        //for (int i = 1; i <= wholeComb; i++)//For any number of combinations counted by bit operations assign value of subset member;
        ////всяка комбинация представлява в двоичен вид поредица от 0 и 1. ако на мястото на всяка единица слагаме съответния член на редицата,
        ////така ще имаме всички комбинации от подсуми. 
        //{
        //    long subsum = 0;
        //    for (int j = 0; j < n; j++)
        //    {
        //        int mask = 1 << j;
        //        int nAndMask = i & mask;
        //        int bit = nAndMask >> j;
        //        if (bit == 1)//and for 1 assign value of subset member and sum them;
        //        {
        //            subsum += arr[j];
        //        }
        //    }
        //    if (subsum == 0)//Count number of subset sums equal to 0;
        //    {
        //        counter++;
        //    }
        //}
        //Console.WriteLine("Whole subset sums equal to zero are: {0}", counter);
    }
}
